// pages/student/indexstudent.js
 var db = wx.cloud.database()
const _ = db.command;
var hc = wx.getStorageSync('name')
var value = wx.getStorageSync('user')
var classid="";
var stuid="";
var classname="";
var number="";
Page({
  
  /**
   * 页面的初始数据
   */
  data: {
  openid: '',
  user:'',
  showadd:false,
  name:'',
  showModalStatus: false,
  classli:''
  },
  zbc:function(){

  },
  jumpstudentgps:function(e){
    //  console.log(e.currentTarget.dataset.number)
      wx.navigateTo({
        url: '../gps/studentgps?number='+e.currentTarget.dataset.number,
      })
  },
  subnumber:function(e){
    wx.showLoading({
      title: '数据加载中',
      mask:true
    }) 
    
    
    db.collection('student').where({
      openid:_.eq(value.openid)
     }).get().then(res=>{
       if(res.data.length == 0){  
        wx.cloud.callFunction({
          name:"add",
          data:{
            table:'student',
            datas:{
              data:{
                name:hc,
                openid:value.openid,
                classes:[]
              }
            }
          }
        }).then(res=>{
          console.log('第一次初始化student表成功')
          
          db.collection('student').where({
            openid:value.openid
          }).get().then(res=>{
            console.log('我的班级',res)
            this.setData({
              classli:res.data[0].classes
            })
            console.log("提示101",e.detail.value.rName)
            db.collection('class').where({
              number:_.eq(e.detail.value.rName)
            }).get().then(res=>{

              console.log("查询是否有相对应的邀请码所返回的数组",res.data)
              if(res.data.length==1){ 
                classid=res.data[0]._id
                classname=res.data[0].classname
                number=res.data[0].number
                wx.cloud.callFunction({
                  name:"update",
                  data:{
                    table:"class",
                    docid:classid,
                    shux:"students",
                    classname:hc
                    }
                  
                }).then(res=>{
                  console.log('班级表中插入学生数据成功') 
                  db.collection('student').where({
                    openid:_.eq(value.openid)
                  }).get().then(res=>{
                    console.log('学生表查询层',res)
                    if(res.data.length == 1){
                      stuid=res.data[0]._id
                    
                      wx.cloud.callFunction({
                        name:"update",
                        data:{
                          table:"student",
                          docid:stuid,
                          shux:"classes",
                          classname:{
                            classname:classname,
                            number:number
                          }
                          }
                      }).then(res=>{
                        console.log("学生表中班级成功进入数组",res)
                        wx.hideLoading()
                        db.collection('student').where({
                          openid:value.openid
                        }).get().then(res=>{
                          wx.hideLoading()
                          console.log('我的班级2',res)
                          this.setData({
                            classli:res.data[0].classes
                          })
                        })
                      })
                  
                    }
                  })
                }) 
              }
            })
          })
        })
      }else{
        console.log("提示101",e.detail.value.rName)
        db.collection('class').where({
          number:_.eq(e.detail.value.rName)
        }).get().then(res=>{
    
          console.log("查询是否有相对应的邀请码所返回的数组",res.data)
          if(res.data.length==1){ 
            classid=res.data[0]._id
            classname=res.data[0].classname
            number=res.data[0].number
             wx.cloud.callFunction({
              name:"update",
              data:{
                table:"class",
                docid:classid,
                shux:"students",
                classname:hc
                }
              
            }).then(res=>{
               console.log('班级表中插入学生数据成功') 
               db.collection('student').where({
                openid:_.eq(value.openid)
               }).get().then(res=>{
                 console.log('学生表查询层',res)
                 if(res.data.length == 1){
                  stuid=res.data[0]._id
                
                   wx.cloud.callFunction({
                    name:"update",
                    data:{
                      table:"student",
                      docid:stuid,
                      shux:"classes",
                      classname:{
                        classname:classname,
                        number:number
                       }
                      }
                  }).then(res=>{
                     console.log("学生表中班级成功进入数组",res)
                     wx.hideLoading()
                     db.collection('student').where({
                      openid:value.openid
                    }).get().then(res=>{
                      wx.hideLoading()
                      console.log('我的班级2',res)
                      this.setData({
                        classli:res.data[0].classes
                      })
                    })
                   })
              
                 }
              })
             })
    
          }
        })
      }
     })


    
    
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var value = wx.getStorageSync('user')
    var hcname = wx.getStorageSync('name')
    console.log(value)
    if(value.info == "teacher"){
      this.setData({
        openid:value.openid,
        user:value.info,
        name:hcname,
        showadd:true
      })
    }else{
      this.setData({
        openid:value.openid,
        name:hcname,
        user:value.info
      })
    }
    if(value.info=="teacher"){
      db.collection('teacher').where({
        openid:value.openid
      }).get().then(res=>{
        console.log('我的班级',res)
        this.setData({
          classli:res.data[0].classes
        })
      })
    }else{
      db.collection('student').where({
        openid:value.openid
      }).get().then(res=>{
        console.log('我的班级',res)
        this.setData({
          classli:res.data[0].classes
        })
      })
    }
   
  },
  jumpclass: function(t) {
    wx.navigateTo({
        url: "../view/teacherview?class=" + t.currentTarget.dataset.class
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },
  
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  jiesan:function(e){
    var that =this;
    wx.showModal({
      title: '删除班级',
      content: '请慎重删除班级',
      success (res) {
        if (res.confirm) {
          wx.showLoading({
            title: '正在删除中',
            mask:true
          })
          
          console.log("要解散的班级",e.currentTarget.dataset.class)
          db.collection("class").where({
            openid:value.openid,
            classname:e.currentTarget.dataset.class
          }).get().then(res=>{
            console.log("解散classres",res)
            var _id=res.data[0]._id;
            var number=res.data[0].number
            db.collection("Number").where({
              number:number
            }).get().then(res=>{
              var numberid = res.data[0]._id;
              console.log('rmove_numberid',numberid)
              wx.cloud.callFunction({
                  name: "remove",
                  data: {
                      table:"Number",
                      docid:numberid
                  }
              }).then()
            })
            wx.cloud.callFunction({
              name: "remove",
              data: {
                  table:"class",
                  docid:_id
              }
           }).then(res=>{
             console.log('rmove_classes_class',res)
           })
          })
      
          db.collection("teacher").where({
            openid:value.openid,
          }).get().then(res=>{
            console.log("解散teacher res",res)
            var _id1=res.data[0]._id;
            var bfclass=res.data[0].classes;
            bfclass.forEach(function(element,index){
              if(element == e.currentTarget.dataset.class){
                bfclass.splice(index,1)
                console.log("afterclass",bfclass)
              }
            })
              wx.cloud.callFunction({
                name:"update",
                data:{
                  table:"teacher",
                  docid:_id1,
                  shux:"removeclass",
                  classname:bfclass
                  }
              }).then(res=>{
                that.setData({
                  classli:bfclass
                })
                console.log("update_techer_class",res)
                wx.hideLoading()
              })
      
          })
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
    
  

  },
  powerDrawer: function (e) { 
    var currentStatu = e.currentTarget.dataset.statu; 
    this.util(currentStatu) 
   }, 
   util: function(currentStatu){ 
    /* 动画部分 */
    // 第1步：创建动画实例  
    var animation = wx.createAnimation({ 
     duration: 200, //动画时长 
     timingFunction: "linear", //线性 
     delay: 0 //0则不延迟 
    }); 
      
    // 第2步：这个动画实例赋给当前的动画实例 
    this.animation = animation; 
    
    // 第3步：执行第一组动画 
    animation.opacity(0).rotateX(-100).step(); 
    
    // 第4步：导出动画对象赋给数据对象储存 
    this.setData({ 
     animationData: animation.export() 
    }) 
      
    // 第5步：设置定时器到指定时候后，执行第二组动画 
    setTimeout(function () { 
     // 执行第二组动画 
     animation.opacity(1).rotateX(0).step(); 
     // 给数据对象储存的第一组动画，更替为执行完第二组动画的动画对象 
     this.setData({ 
      animationData: animation 
     }) 
       
     //关闭 
     if (currentStatu == "close") { 
      this.setData( 
       { 
        showModalStatus: false
       } 
      ); 
     } 
    }.bind(this), 200) 
     
    // 显示 
    if (currentStatu == "open") { 
     this.setData( 
      { 
       showModalStatus: true
      } 
     ); 
    } 
   } 
})